// 封装高阶组件 进行路由权限的验证
import { useEffect } from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import { getToken } from '@/untils/auth'

// 定义Props的类型
interface Props {
    children: React.ReactNode;
}
export default function RouteAuth({ children }: Props) {
    const navigate = useNavigate();
    const location = useLocation();
    const token: string = getToken() || ''
    // 如果没有token，重定向到登录页面,有token，并且当前页面是登录页面，重定向到首页
    useEffect(() => {
        if (!token) {
            navigate('/login', { replace: true });
        } else if (location.pathname === '/login' && token) {
            navigate('/', { replace: true });
        }
    }, [token, navigate])
    // 否则进入页面
    return <>{children}</>
}
